1. Field of the invention
This invention concerns verifying Service Level Agreement (SLA) compliance in Internet service provider environments. More specifically, in one embodiment the invention describes a system where an independent agent, for a fee, verifies the SLA contract compliance between first and second parties, where the first party pays a fee to the second party in return for the second party hosting the first party""s Internet presence with specified and/or guaranteed performance parameters.
2. Description of the Related Art
Businesses are increasingly moving their Internet presence and even their internal operations to Internet Service Providers (ISP""s) or Application Service Providers (ASP""s). An ISP or ASP, herein called service provider without any loss of generality, operates Internet Data Centers (IDC""s) to support the clients"" Web presence and transactions. Under this model, a service provider offers a service with the equipment, software, system management and network connections to enable a business to conduct some of its operations, such as business-to-business auctions, customer relations, advertising, financial transactions, etc., over the Internet. This relieves businesses, especially small ones, from the burden of operating their own home-based Web sites, and allows more economy of scale at IDC""s through consolidation of resources to provide more cost effective operation.
A Service Level Agreement (SLA) contract between a business and a service provider typically stipulates that in return for a fee, the service provider will guarantee that certain performance parameters will be satisfied, such as maximum service down time and user-perceived response time to the business""s Web Site. However, it is difficult, at best, for the business to verify that the performance parameters are met or that the service provider complies with the terms of the SLA. A business typically contracts a third party company to conduct independent verification of the service provider""s compliance with the SLA.
The current art is to have the independent verifier deploy periodic polling of the Web site""s services, and thus generate an approximation of the response time perceived by actual customers. There are drawbacks to this polling scheme for several reasons, among which are accuracy; difficulty of covering the possible range of equipment that clients use; an increased load on the Web server due to the polling traffic; and difficulty of ensuring accurate or complete geographic coverage. A service provider may also argue that the methods deployed by the third party are not representative of the customers"" experience, and therefore are not relevant to the SLA. Additionally, polling can often interfere with embedded Web caches, further distorting the accuracy of the measurements. Furthermore, some services may be cumbersome to measure by polling or fictitious requests (e.g. financial transactions).
An alternative to polling is to have the service provider measure the time it takes each request to execute at the server site, excluding the network effects. Service providers provide this information to their customers. This measurement, however, does not include the network interactions, or the effects of Web caches and proxies, and thus does not represent accurately the customer""s perceived response time. For instance, such a measurement does not point to potential problems within the network (e.g. the need for faster Internet connection). Additionally, it does not provide any mechanism to verify the service provider""s claims.
Therefore, there is a need for an independent verifier to produce a tally of the actual user""s perceived response time of actual requests. By measuring the actual response time the independent verifier avoids all the pitfalls mentioned above, and provides an accurate picture of the level of service provider""s SLA compliance. This picture takes into account not only server-side latency, but also network performance, so that the response time measurement reflects latency experienced by a client system accessing information on the WWW.
In one embodiment of the present invention, a level of service received by a client from a service provider is verified in a number of steps. In a first step, a business contracts an independent third party to verify the SLA between said business and a service provider that implements the business""s Internet presence. In a second step, the independent verifier processes and modifies the contents of the business""s Web site to attach measuring and reporting instructions to blocks of information available on the site (e.g. Instructions are added to HTML documents, Java applets, etc.). In a third step, the measuring and reporting instructions are transparently shipped to a Web client in association with the blocks of information. The delivery of the instructions occurs in response to a request for the information by the client. Once they are delivered, the instructions are transparently executed by the client to measure and report the response time. This client-side execution produces an accurate measure of service that is provided to the client by the network and the server. In a fourth step, the reporting instructions cause the client to transparently send a report of the service measure to the verifying agent. All these steps are performed in a transparent manner to the client so as to not interfere with the service, and do not pose any appreciable overhead on the service provider""s resources, unlike with existing art (e.g. Polling). Furthermore, this method provides an accurate measurement of the actual response time, including both time to execute the request at the server and the network delay.
The measuring aspect, according to an embodiment, includes response time for delivering one of the blocks of information to the client, numerous instances of delivering blocks of information to the client, or statistics about the response times, such as average, maximum and minimum times, variance, etc.
The reporting aspect has a number of embodiments. In one, reporting could be triggered upon the client unloading one of the blocks of information. In another, the reporting could be triggered at least partly from a certain type of request by the client, such as for a block of information that does not have any of the inserted instructions, or for a block that is not on the server. In another, the reporting is triggered only when the measured service response time violates a specified performance level. In one alternative, the reporting is triggered at least partly by an accumulation of a certain threshold number of response times. Alternatively, passage of a time or date causes, or at least contributes to causing, the reporting. Also, in one embodiment the reporting is related to an identity of the client.
In a further sending related aspect, in an embodiment the report includes HyperText Transfer Protocol formatting for sending to a server of the verifying agent.
In another form, an embodiment includes a processor connected a network. A storage device is connected to the processor and the network for storing; i) a program to control the processor and ii) blocks of information. The storage device is also for storing measuring instructions and reporting instructions attached to the blocks of information for executing by the client to measure service provided to the client by the service provider, and to send a report of the measure from the client to a verifying agent. Furthermore, the processor is operable with the program to deliver some information blocks, the measuring instructions, and the reporting instructions to the client via the network, responsive to a request by the client.
In another form, an embodiment includes a computer program product in a computer readable media for use in a data processing system. The computer program product includes measuring instructions attached to blocks of information for maintaining on a server. The server is for coupling to a client via a network. The measuring instructions are for: i) delivering to the client in association with ones of the blocks of information, responsive to a request by the client, and ii) executing by the client to measure service provided to the client by the network and the server. The computer program product also includes reporting instructions attached to the blocks of information. The reporting instructions are for: i) delivering to the client in association with ones of the blocks of information, responsive to a request by the client, and ii) executing by the client to send a report of the measure from the client to a verifying agent.
It is an advantage of the invention that performance of both the host server and the network are verified in a thorough and objective way that does not add substantially to traffic on the server or network, and does not interfere with the user""s experience. These and other advantages of the invention will be further apparent from the following drawings and detailed description.